Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Błąd w programie.


Rekomendowane odpowiedzi

Opublikowano

Witajcie. Otóż po skompilowaniu owego kodu, program nie spełnia swojego zadania - nie wypisuje na ekranie wartości elementów z tablicy. Widnieje wyłącznie char 'i'. Moglibyście go skorygować?

#include <iostream>
#include <iostream>
using namespace std;
 
char tab1[9]{"instytut"};
char tab2[15];
 
void funkcja(char tab24[], char tab23[]);
 
int main()
{
    __cplusplus;
    funkcja(tab1, tab2);
    cout<<tab2<<endl;
}
 
void funkcja(char tab24[], char tab23[])
{
    for(int i=0;;i++)
    {
        if(i%2==0)
        {
            tab23=tab24;
        }
 
            if(tab24==NULL)
            {
                break;
            }
    }
}
 

 

Opublikowano

Kopiujesz co drugi znak - oznacza to że początek tab2 wygląda tak: 'i', '\0', 's', '\0' itd.. std::cout stwierdza że '\0' to koniec napisu i przestaje wypisywać po 'i'.

Opublikowano

Kopiujesz co drugi znak - oznacza to że początek tab2 wygląda tak: 'i', '\0', 's', '\0' itd.. std::cout stwierdza że '\0' to koniec napisu i przestaje wypisywać po 'i'.

Czy w tym przypadku rozstrzygnięciem tej perypetii jest bezpośrednie odwołanie się do elementów tablicy? Czyli: cout<<tab2[0]<<tab2[2]<<{....}<<endl.

Opublikowano

Czy w tym przypadku rozstrzygnięciem tej perypetii jest bezpośrednie odwołanie się do elementów tablicy? Czyli: cout<<tab2[0]<<tab2[2]<<{....}<<endl.

Lepiej po prostu trzymać sobie dwa liczniki w funkcji funkcja - jeden dla tab24(obecnie i), którego wartość inkrementujesz w każdym kroku tej pętli for(tak jak teraz). Drugi natomiast byłby osobny dla tab23 i inkrementowany tylko wtedy, gdy dodasz jakiś znak do tab23. Wtedy wyszłoby "isyu".

 

A jak chcesz aby było z przerwami, to zamiast drugiego licznika dopisz sobie blok else, w którym wstawiasz do tab23 spację czy coś. Wtedy wyszłoby "i s y u ".

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...